Skip to content

Add barrier instructions DMB, DSB, ISB #38

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jun 5, 2017

Conversation

adamgreig
Copy link
Member

These instructions (A6.7.21-24 in ARMv6-M reference and A7.7.32-36 in ARMv7-M reference) allow explicit instruction and memory synchronisation. They're necessary for dealing with caches in Cortex-M7 parts and for various DMA operations on other parts.

Since they exist in both ARMv6-M and ARMv7-M I've added them as #[cfg(target_arch="arm")] but maybe there's a better cfg flag?

The argument 0xF is the only permitted encoding. They are all marked volatile and as clobbering memory in the CMSIS C implementation.

@japaric
Copy link
Member

japaric commented Jun 5, 2017

Thank you, @adamgreig.

@homunkulus r+

@homunkulus
Copy link
Contributor

📌 Commit c4d897e has been approved by japaric

@homunkulus
Copy link
Contributor

⌛ Testing commit c4d897e with merge c4d897e...

@homunkulus
Copy link
Contributor

☀️ Test successful - status-travis
Approved by: japaric
Pushing c4d897e to master...

@homunkulus homunkulus merged commit c4d897e into rust-embedded:master Jun 5, 2017
adamgreig pushed a commit that referenced this pull request Jan 12, 2022
Don't include lang_items when in test mode.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants